도구 함수
Claude로 AI 애플리케이션을 구축할 때, 실시간 정보에 대한 접근권이나 작업을 수행할 수 있는 능력을 부여해야 하는 경우가 많습니다. 이때 도구 함수가 필요합니다 - 도구 함수는 Claude가 사용자를 돕기 위해 추가 데이터가 필요할 때 호출할 수 있는 Python 함수입니다.
위 이미지는 우리가 구현할 세 가지 필수 도구를 보여줍니다: 현재 날짜/시간 가져오기, 날짜에 기간 추가하기, 그리고 알림 설정하기. 첫 번째부터 시작해 봅시다.
도구 함수란 무엇인가?
도구 함수는 Claude가 사용자를 돕기 위해 추가 정보가 필요하다고 판단할 때 자동으로 실행되는 일반 Python 함수입니다. 예를 들어, 누군가 "지금 몇 시야?"라고 물으면, Claude는 현재 시간을 가져오기 위해 날짜/시간 도구를 호출할 것입니다.
날씨 도구 함수의 예시입니다. 입력값을 검증하고 명확한 오류 메시지를 제공하는 방식에 주목하세요 - 이것들은 중요한 모범 사례입니다.
도구 함수 모범 사례
도구 함수를 작성할 때 다음 지침을 따르세요:
- 설명적인 이름 사용: 함수 이름과 매개변수 이름 모두 목적을 명확하게 나타내야 합니다
- 입력값 검증: 필수 매개변수가 비어 있거나 유효하지 않은지 확인하고, 그럴 경우 오류를 발생시키세요
- 의미 있는 오류 메시지 제공: Claude는 오류 메시지를 볼 수 있으며 수정된 매개변수로 함수 호출을 재시도할 수 있습니다
Claude가 오류를 통해 학습하기 때문에 검증은 특히 중요합니다. "Location cannot be empty"와 같은 명확한 오류를 발생시키면, Claude는 적절한 위치 값으로 함수를 다시 호출하려고 시도할 수 있습니다.
첫 번째 도구 함수 만들기
현재 날짜와 시간을 가져오는 함수를 만들어 봅시다. 이 함수는 Claude가 다양한 형식으로 시간을 요청할 수 있도록 날짜 형식 매개변수를 받습니다:
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
if not date_format:
raise ValueError("date_format cannot be empty")
return datetime.now().strftime(date_format)
이 함수는 Python의 datetime 모듈을 사용하여 현재 시간을 가져오고 제공된 형식 문자열에 따라 형식을 지정합니다. 기본 형식은 연-월-일 시:분:초를 제공합니다.
다양한 형식으로 테스트할 수 있습니다:
# Default format: "2024-01-15 14:30:25"
get_current_datetime()
# Just hour and minute: "14:30"
get_current_datetime("%H:%M")
검증 확인은 Claude가 날짜 형식으로 빈 문자열을 전달할 수 없도록 보장합니다. 이 특정 오류는 발생 가능성이 낮지만, 입력값을 검증하고 Claude가 학습할 수 있는 유용한 오류 메시지를 제공하는 패턴을 보여줍니다.
다음 단계
함수를 만드는 것은 첫 번째 단계에 불과합니다. 다음으로, Claude에게 함수를 설명하는 JSON 스키마를 작성한 다음 채팅 시스템에 통합해야 합니다. 이 도구 함수 접근 방식은 코드를 체계적으로 유지하면서 Claude에게 강력한 기능을 제공합니다.
